﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using model;

namespace negocio
{
    public class CitaBO
    {

        public List<TIPO_TRAMITE> listarTipoTramites()
        {
            notariaEntities contexto = new notariaEntities();
            List<TIPO_TRAMITE> lista = new List<TIPO_TRAMITE>();

            //lista = contexto.PERSONA.OrderBy(P => P.PER_NOMBRES).ToList();

            lista = (from P in contexto.TIPO_TRAMITE select P).ToList();
            contexto.Dispose();
            return lista;
        }
        public List<CIUDAD> listarCiudades()
        {
            notariaEntities contexto = new notariaEntities();
            List<CIUDAD> lista = new List<CIUDAD>();

            //lista = contexto.CIUDAD.OrderBy(C => C.DESCRIPCION).ToList();

            lista = (from P in contexto.CIUDAD select P).ToList();
            contexto.Dispose();
            return lista;
        }

        public List<NOTARIA> listarNotariaPorCiudad(int idCiudad)
        {
            notariaEntities contexto = new notariaEntities();
            List<NOTARIA> lista = new List<NOTARIA>();

            lista = contexto.NOTARIA.Where(N => N.IDCIUDAD == idCiudad).ToList();
            contexto.Dispose();
            return lista;
        }

        public List<CITA> listarMisCitas(int idSolicitante)
        {
            notariaEntities contexto = new notariaEntities();
            List<CITA> lista = new List<CITA>();

            lista = contexto.CITA.Where(C => C.IDSOLICITANTE== idSolicitante).ToList();
            contexto.Dispose();
            return lista;
        }

        public ESTADO getEstadoPorCodigo(String codigo)
        {
            notariaEntities contexto = new notariaEntities();
            ESTADO ESTADOTmp = contexto.ESTADO.Where(E => E.CODIGO == codigo).FirstOrDefault();
            contexto.Dispose();

            return ESTADOTmp;
        }
        public TIPO_TRAMITE getTipoTramitePorId(int idTipoTramite)
        {
            notariaEntities contexto = new notariaEntities();
            TIPO_TRAMITE TIPO_TRAMITETmp = contexto.TIPO_TRAMITE.Where(T => T.IDTIPOTRAMITE== idTipoTramite).FirstOrDefault();
            contexto.Dispose();

            return TIPO_TRAMITETmp;
        }
        
        

        public int insertar(CITA cita)
        {
            notariaEntities contexto = new notariaEntities();
            int id = -1;

            contexto.AddToCITA(cita);
            int resta = contexto.SaveChanges();
            id = (int)contexto.CITA.OrderByDescending(C => C.IDCITA).First().IDCITA;
            contexto.Dispose();

            return id;
        }
        
        
    }
}
